package pruebas;

import junit.framework.TestCase;
import org.junit.Test;
import modelo.Parte;
import modelo.ParteDeRompeHielos;

public class ParteTest extends TestCase {
	@Test
    public void testRecibirDanioCambiaEstado() {
    	Parte unaParte = new Parte();

   		assertTrue("La parte esta sana",unaParte.estaSana());   		
    	unaParte.recibirDanio();
   		assertTrue("La parte esta rota",unaParte.estaRota());
    	
    }
    
    @Test
    public void testRecibirDanioEnParteRotaLaDejaRota() {
    	Parte unaParte = new Parte();

    	unaParte.recibirDanio();
   		assertTrue("La parte esta rota",unaParte.estaRota());
    	unaParte.recibirDanio();
   		assertTrue("La parte esta rota",unaParte.estaRota());
    	
    }
    
    @Test
    public void testRecibirDanioParteRompeHielosNoLaDejaNiRotaNiSana() {
    	Parte unaParte = new ParteDeRompeHielos();
    	
   		assertTrue("La parte esta sana",unaParte.estaSana());
   		
    	unaParte.recibirDanio();

   		assertFalse("La parte no esta sana",unaParte.estaSana());
   		assertFalse("La parte no esta rota",unaParte.estaRota());    	
    }
    
    @Test
    public void testRecibirDanioDosVecesParteRompeHielosLaRompe() {
    	Parte unaParte = new ParteDeRompeHielos();

    	unaParte.recibirDanio();
    	unaParte.recibirDanio();
    	
   		assertTrue("La parte esta rota",unaParte.estaRota());    	
    }
    
    @Test
    public void testRecibirDanioSobreParteRotaParteRompeHielosLaDejaRota() {
    	Parte unaParte = new ParteDeRompeHielos();

    	unaParte.recibirDanio();
    	unaParte.recibirDanio();    	
   		assertTrue("La parte esta rota",unaParte.estaRota());   
    	unaParte.recibirDanio();    	
   		assertTrue("La parte esta rota",unaParte.estaRota());    	
    }
}
